/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.clinicariobamba.Controladores;

import com.clinicariobamba.ReglasNegocio.Clases.TipoEntrada;
import com.clinicariobamba.ReglasNegocio.Funciones.FuncionesTipoEntrada;
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.context.DefaultRequestContext;

/**
 *
 * @author xavier
 */
@ManagedBean
@ViewScoped
public class ControladorTipoEntrada implements Serializable {

    private TipoEntrada tipoEntrada;
    private ArrayList<TipoEntrada> lstTipoEntrada;
    private TipoEntrada tipoEntradaSel;

    public ControladorTipoEntrada() {
        tipoEntrada = new TipoEntrada();
        CargarTipoEntradas();
    }

    public TipoEntrada getTipoEntrada() {
        return tipoEntrada;
    }

    public void setTipoEntrada(TipoEntrada tipoEntrada) {
        this.tipoEntrada = tipoEntrada;
    }

    public ArrayList<TipoEntrada> getLstTipoEntrada() {
        return lstTipoEntrada;
    }

    public void setLstTipoEntrada(ArrayList<TipoEntrada> lstTipoEntrada) {
        this.lstTipoEntrada = lstTipoEntrada;
    }

    public TipoEntrada getTipoEntradaSel() {
        return tipoEntradaSel;
    }

    public void setTipoEntradaSel(TipoEntrada tipoEntradaSel) {
        this.tipoEntradaSel = tipoEntradaSel;
    }

    
    public void CargarTipoEntradas()
    {
        this.lstTipoEntrada = FuncionesTipoEntrada.obtenerTipoEntradas();
    }
    public void insertarTipoEntrada() {
        try {
            if (FuncionesTipoEntrada.insertar(tipoEntrada)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Insertados");
                FacesContext.getCurrentInstance().addMessage(null, message);     
                CargarTipoEntradas();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoTipoEntrada.hide()");
                tipoEntrada = new TipoEntrada();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al eliminar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);

        }
    }

    public void editarTipoEntrada() {
        try {
            if (FuncionesTipoEntrada.modificar(tipoEntradaSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Actualizados");
                FacesContext.getCurrentInstance().addMessage(null, message);               
                CargarTipoEntradas();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEditarTipoEntrada.hide()");
                tipoEntrada = new TipoEntrada();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error en la actualizacion");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void eliminarTipoEntrada() {
        try {
            if (FuncionesTipoEntrada.eliminar(tipoEntradaSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Eliminados");
                FacesContext.getCurrentInstance().addMessage(null, message);                
                CargarTipoEntradas();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEliminarTipoEntrada.hide()");
                tipoEntrada = new TipoEntrada();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al eliminar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

}
